<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>05.数组常用api</title>
</head>
<body>

    <script>
        var shops = [
            {name:"苹果电脑",price:3000},
            {name:"华为电脑",price:5000},
            {name:"联想电脑",price:4000}
        ]
        // 用reduce 计算  总和
        /*
        filter： 过滤元素  返回过滤之后的数组
        map： 处理每个元素 返回处理后的数组
        every： 判断所有元素是否都满足条件
        some：  判断是有有一个元素满足条件
        find： 检索出一个元素
         findIndex：检索出一个元素的位置
         reduce： 累加累乘法...
        */
        var arr01 = [10,20,30,4,5]
        // 获取大于30 的数值
       var arr02 =  arr01.filter(function (value,index) {
        //console.log(value,index,arr);
            return value > 30;
        })
        console.log(arr02);
        // 每个元素都+10
        var arr03 =  arr01.map(function(value,index) {
             return value + 10;
        })
        console.log(arr03);
        // 判断所有的元素都大于10  并且关系
        var b01 = arr01.every(function(value,index) {
            return  value > 10;
        })
        console.log(b01);
        // 判断是否有元素 大于30的
        var b02 = arr01.some(function(value,index) {
            return  value > 30;
        })
        console.log(b02);
        // 获取数值为30的元素
        var value01 = arr01.find(function(value,index) {
            return  value === 30
        })
        console.log(value01);
        // 获取数值为30的元素位置
        var index01 = arr01.findIndex(function(value,index) {
            return  value === 30
        })
        console.log(index01);

        // 计算  求数组中元素的和
        var  sum = arr01.reduce(function(preValue,curValue) {
            //console.log(preValue,curValue);
            return preValue+curValue
        })
        console.log(sum);

        var  sum02 = arr01.reduce(function(preValue,curValue) {
            // console.log(preValue,curValue);
            return preValue*curValue
        },1)
        console.log(sum02);

        arr01.forEach(function(value,index) {
             console.log(value,index);
        })
    </script>

    
</body>
</html>